home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MIDICraft's MIDINET CD-ROM
/
MIDICraft's MIDINET CD-ROM.iso
/
DOSUTILS
/
MAPNOTES.DOC
< prev
next >
Wrap
Text File
|
1996-11-26
|
6KB
|
164 lines
******************************
MAPNOTES v1.0
midi note mapping
by Guenter Nagler
1996
(gnagler@ihm.tu-graz.ac.at)
******************************
[0] FEATURES
+ reads a binary midi file
+ reads note translation table from a text file
+ writes a binary midi file
[1] BACKGROUND
Sometimes notes are totally wrong and can be edited with midi editors
manually with much work.
This utility simply exchanges notes with other ones in song or certain
channels.
Exchanges are written in a text file and can be used next time again when
same problem occurs. The notes can be specified using note names (e.g. C5)
or note numbers in decimal (60) or hexadecimal ($3C).
[2] FILES DESCRIPTION
MAPNOTES.EXE.........converter program
MAPNOTES.DOC.........this file, showing usage of MAPNOTES.EXE
MIDIIO.HPP...........header file for a c++ midi parser
MIDIIO.CPP...........source code for a c++ midi parser
MAPNOTES.CPP.........c++ source code for midi to text
MAPNOTES.MAK.........make file for project
MAPNOTES.CFG.........compiler options for make
MAPNOTES.PRJ.........compiler project for borland c++ compilers
MAPNOTES.CHG.........note translation table
only MAPNOTES.EXE is required to run program
a change file like MAPNOTES.CHG must be available.
[3] COPYRIGHT
MAPNOTES (c) 1996 was created by Guenter Nagler.
MAPNOTES is free and may be used as you wish with this one exception:
You may NOT charge any fee or derive any profit for distribution
of MAPNOTES. Thus, you may NOT sell or bundle MAPNOTES with any
product in a retail environment (shareware disk distribution, CD-ROM,
etc.) without permission of the author.
You may give MAPNOTES to your friends, upload it to a BBS, or ftp it to
another internet site, as long as you don't charge anything for it.
[4] DISCLAIMER
MAPNOTES was designed to handle 100% compatible midi files.
So I give no guarantees of the results, especially with non 100%
compatible midi files.
If you find a midi file that you think to be 100% compatible midi
that is not correctly converted, please send a sample file to
gnagler@ihm.tu-graz.ac.at .
Use MAPNOTES at your own risk. Anything you do with MAPNOTES is your
responsibility, and not the author's. Any damage caused to any person,
computer, software, hardware, company, or business by running MAPNOTES
is your responsibility, and the author will not be liable.
If you don't understand these terms, or are not sure of something, or
are afraid something bad might come of using MAPNOTES, don't use it!
You are here forewarned.
[5] INSTALLATION
[MSDOS]
Simply copy MAPNOTES.EXE in a directory that is in your path.
When you start the program without arguments
[UNIX]
compile sources with your C++ compiler (e.g. GNU Compiler g++):
g++ -o MAPNOTES MAPNOTES.cpp midiio.cpp
and run program
$ MAPNOTES
C:\> MAPNOTES
you should get the usage text (see next section)
[6] USAGE
MAPNOTES translates notes
usage: MAPNOTES [-chg file.chg] [-c #] [-quiet] file.mid changed.mid
-chg file.chg load change from file.CHG (default is MAPNOTES.CHG)
-c # modify programs on channel (1-16, default: all channels)
-quiet be quiet! does not write percentage info
The parts in brackets [...] are optional.
Option -c can be used more than once to select some channels.
Warning:
Do not expect that MAPNOTES will produce a copy of the original
file if no translations are done! MIDI allows to encode its
commands in different ways without changing the semantic of the
notes (It is allowed to compress the midi file by ommiting
redunant command bytes, but it is no duty).
[8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
WWW: http://hgiicm.tu-graz.ac.at/Cpub
contains all my dos/unix midi programs
EMAIL: gnagler@ihm.tu-graz.ac.at
[9] TRANSLATION TABLE
Modify MAPNOTES.CHG or modify a copy of it (if you are using alternative
translation tables).
Semicolons are used for comments that stop at end of current line.
this not ; but this is a comment
Numbers can be entered decimal or hexadezimal
62 ; this is a decimal value
$3e ; this is a hexadecimal value that has same value as decimal 62
Note translations are defined by lines of the form:
oldnote => newnote
where oldnote and newnote are note numbers or note names
e.g. mapnotes.chg:
; some note translations used in my song
C5 => 80
$39 => 70
C3 => C#3
This can also be used to map drum notes (option -c 10).
Following note names are recognized:
C0 C#0 D0 D#0 E0 F0 F#0 G0 G#0 A0 A#0 B0
C1 C#1 D1 D#1 E1 F1 F#1 G1 G#1 A1 A#1 B1
C2 C#2 D2 D#2 E2 F2 F#2 G2 G#2 A2 A#2 B2
C3 C#3 D3 D#3 E3 F3 F#3 G3 G#3 A3 A#3 B3
C4 C#4 D4 D#4 E4 F4 F#4 G4 G#4 A4 A#4 B4
C5 C#5 D5 D#5 E5 F5 F#5 G5 G#5 A5 A#5 B5
C6 C#6 D6 D#6 E6 F6 F#6 G6 G#6 A6 A#6 B6
C7 C#7 D7 D#7 E7 F7 F#7 G7 G#7 A7 A#7 B7
C8 C#8 D8 D#8 E8 F8 F#8 G8 G#8 A8 A#8 B8
C9 C#9 D9 D#9 E9 F9 F#9 G9 G#9 A9 A#9 B9
C10 C#10 D10 D#10 E10 F10 F#10 G10
They correspond to note numbers 0-127.
[10] USE
example: translate all non-drum notes specified in MAPNOTES.CHG in current directory
MAPNOTES original.mid changed.mid
example: convert only GM drum notes using drum mapping table
MAPNOTES -c 10 -chg perc.chg file.mid gmfile.mid
example: modify all channels including drum channel 10
MAPNOTES -c 1-16 old.mid new.mid